﻿// FileStructure.fs
//
// Copyright 2009 Sergey Mechtaev
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation.


#light

namespace SmartCPP.Core.Parser

module FileStructure =

    ///FileElement represents a logical element of file text
    type FileElement =
        | TextElement of Lexer.StringWithPosition
        | DefineElement of Lexer.DefineArgumentType
        | ConditionalElement of Lexer.IfDirectiveType * FileElement list * FileElement list
        | IncludeElement of Lexer.IncludeDirectiveType
        
    //Represents file like sequence of file elements
    type FileElements = FileElementsList of FileElement list
   